/**
 * 公共函数文件库
 * @description  增加的公共函数名 请在 export default 中暴露，不然无法调用
 */

export function dateFormat(date, type) {
  const datetime = new Date()
  datetime.setTime(date)
  const year = datetime.getFullYear()
  const month = datetime.getMonth() + 1 < 10 ? '0' + (datetime.getMonth() + 1) : datetime.getMonth() + 1
  const day = datetime.getDate() < 10 ? '0' + datetime.getDate() : datetime.getDate()
  const hour = datetime.getHours() < 10 ? '0' + datetime.getHours() : datetime.getHours()
  const minute = datetime.getMinutes() < 10 ? '0' + datetime.getMinutes() : datetime.getMinutes()
  const second = datetime.getSeconds() < 10 ? '0' + datetime.getSeconds() : datetime.getSeconds()
  const weekList = ['星期天', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']
  const week = weekList[datetime.getDay()] || '未知'
  switch (type) {
    case ('y') :
      return year
    case ('ym') :
      return year + '-' + month
    case ('ymd') :
      return year + '-' + month + '-' + day
    case ('hms') :
      return hour + ':' + minute + ':' + second
    case ('ymdhms'):
      return year + '-' + month + '-' + day + '   ' + hour + ':' + minute + ':' + second
    case ('w') :
      return week
  }
}

/**
 * @param value  该函数用于输出参数value的类型
 */
export function type(value) {
  const s = Object.prototype.toString.call(value)
  return s.match(/\[object (.*?)\]/)[1].toLowerCase()
}

export default {
  dateFormat,
  type
}
